<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * js解析器在js代码运行之前，会扫描  var  和 function 关键字，对他们做预解析
         * 
         * 1. var 声明变量但不赋值
         * 2. function 声明的函数，声明并赋值   
         * 
         * 注意：
         *   xxx is not defined
         */

        console.log(a);
        var a = 1;

        // 
        // var b = 1;
        // var c = b;
        // console.log(b,c)

        console.log('b: ',b);
        console.log('c: ',c);

        // b 做了预解析，c 没有做预解析
        var b = c = 1;
        console.log(b,c);

        // b 和 c 多会做预解析
        // 说明变量可以重复使用 var进行声明
        var b = 2,c = 3;
        console.log(b,c);

        var zzz = 123;
        zzz = 222;
        zzz = 333;
        console.log(zzz);


        var yyy,xxx = 2;




        


    </script>
</body>
</html>